﻿#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>
#include<time.h>
#include<string.h>
typedef int HPDataType;
typedef struct Headstr {
	HPDataType* a;
	int capacity;  //容量
	int size;  //实际长度
}Heap;
//初始化
void HeapInit(Heap* hp);
// 堆的销毁
void HeapDestory(Heap* hp);
// 堆的插入
void HeapPush(Heap* hp, HPDataType x);
// 堆的删除
void HeapPop(Heap* hp);
// 取堆顶的数据
HPDataType HeapTop(Heap* hp);
// 堆的数据个数
int HeapSize(Heap* hp);
// 堆的判空
int HeapEmpty(Heap* hp);
//打印
void HeapPrint(Heap* hp);
void Adjustdown(HPDataType* p, int n, int parent);
void Adjustup(HPDataType* p, int child);
void swap(HPDataType* p, HPDataType* q);
//void PrintTopK(const char* filename, int k);
//void CreateNDate();